package com.bite.dailyHomework.date1109;

public class Demo_02 {
    /**
     * 继承 Thread, 重写 run
     * 实现 Runnable, 重写 run
     * 继承 Thread, 重写 run, 使用匿名内部类
     * 实现 Runnable, 重写 run, 使用匿名内部类
     * 使用 lambda 表达式
     */
    public static void main(String[] args) {
        //继承 Thread, 重写 run
        MyThread myThread = new MyThread();
        myThread.start();

        //实现 Runnable, 重写 run
        MyRunnable1 myRunnable1 = new MyRunnable1();
        Thread thread = new Thread(myRunnable1);
        thread.start();

        //继承 Thread, 重写 run, 使用匿名内部类
        Thread thread1 = new Thread(){
            @Override
            public void run(){
                System.out.println("继承 Thread, 重写 run, 使用匿名内部类");
            }
        };
        thread1.start();

        //实现 Runnable, 重写 run, 使用匿名内部类
        Thread thread2 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("实现 Runnable, 重写 run, 使用匿名内部类");
            }
        });
        thread2.start();

        //使用 lambda 表达式
        Thread thread3 = new Thread(()->{
            System.out.println("使用 lambda 表达式");
        });
        thread3.start();
    }
}
/**
 * 继承 Thread, 重写 run
 */
class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("hello my Thread");
    }
}
/**
 * 实现 Runnable, 重写 run
 */
class MyRunnable1 implements Runnable {
    @Override
    public void run() {
        System.out.println("hello my Runnable");
    }
}